<?php namespace Admin\Controller; 


use Common\Model\Category;
use Common\Model\Type;
//商品分类控制器
class CategoryController extends CommonController{

	private $categoryModel;
	// 构造函数
	public function __init(){
		// 先调用公共控制器commoncontroller里面的__init方法，
		parent::__init();
		// 实例化属性模型
		$this->categoryModel=new Category;
	}


	public function index(){
		// 实例化类型模型
		$typeModel=new Type;
		// 查询数据库所有数据【分类表与类型表联合查询】
		$cateData=$this->categoryModel->join('type','tid','=','type_tid')->get();
		// 将数据变成树状结构
		$cateData=Data::tree($cateData,'cname');
		View::with('cateData',$cateData);
		View::make();
	}

	public function add(){
		// 实例化类型模型
		$typeModel=new Type;
		// 将所有类型查询出来并且分配
		$typeData=$typeModel->field('tname','tid')->get();
		// sp($typeData);exit;
		// 分配变量
		View::with('typeData',$typeData);
		// 如果用户有提交
		if(IS_POST){
		// 调用模型里面的store()方法进行添加
			if(!$this->categoryModel->store()){//如果添加失败那就返回错误信息
				$this->error($this->categoryModel->getError());
			}
			$this->success('添加成功',U('Category/index'));
		}
		View::make();
	}

	// 添加子分类
	public function addSon(){
		// 获取get参数的cid
		$cid=Q('get.cid',0,'intval');
		// 查询cid对应的所属分类
		$pCate=$this->categoryModel->where("cid=$cid")->field('cid','cname')->find();
		// sp($pCate);
		View::with('pCate',$pCate);
		// 实例化类型模型
		$typeModel=new Type;
		// 将所有类型查询出来并且分配
		$typeData=$typeModel->field('tname','tid')->get();
		// sp($typeData);exit;
		// 分配变量
		View::with('typeData',$typeData);
		// 如果用户有提交
		if(IS_POST){
			if(!$this->categoryModel->store()){
				$this->error($this->categoryModel->getError());
			}
			$this->success('添加成功','Category/index');
		}
		View::make();
	}

	public function edit(){
		//1. 先获取旧数据
		// 获取get参数的cid
		$cid=Q('get.cid',0,'intval');
		// 获取旧数据
		$oldData=$this->categoryModel->join('type','tid','=','type_tid')->where("cid={$cid}")->find();
		// sp($oldData);
		// 分配变量
		View::with('oldData',$oldData);


		//2.获取对应的所属分类
		$cateData=$this->categoryModel->getNoMine($cid);//调用模型里面的getNoMine()方法
		// 将所属分类分配
		View::with('cateData',$cateData);

		// 3.查询所有的类型
		// 实例化类型模型
		$typeModel=new Type;
		$typeData=$typeModel->get();
		// sp($typeData);
		// 分配变量
		View::with('typeData',$typeData);

		//3. 修改数据
		if(IS_POST){
			// 调用模型里面的edit方法
			if(!$this->categoryModel->edit()){//如果有错误就返回
				$this->error($this->categoryModel->getError());
			}
			$this->success('修改成功','Category/index');
		}
		View::make();
	}

	public function del(){
		// 获取get参数的cid
		$cid=Q('get.cid',0,'intval');
		// 调用模型里面的del()删除方法
		$this->categoryModel->del($cid);
		$this->success('删除成功');
	}
}